package com.anye.greendao.gen;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.yoyo.yyadsdk.bean.dao.AdvScreenEntity;
import com.yoyo.yyadsdk.bean.dao.AppEntity;
import com.yoyo.yyadsdk.bean.dao.ConfigEntity;
import com.yoyo.yyadsdk.bean.dao.LocalAdvEntity;
import com.yoyo.yyadsdk.bean.dao.LocalAlarmEntity;
import com.yoyo.yyadsdk.bean.dao.LocalAppEntity;
import com.yoyo.yyadsdk.bean.dao.LocalPullEntity;
import com.yoyo.yyadsdk.bean.dao.LocalShortcutEntity;
import com.yoyo.yyadsdk.bean.dao.LocalTimingEntity;
import com.yoyo.yyadsdk.bean.dao.MonitorTimeEntity;
import com.yoyo.yyadsdk.bean.dao.PullBaseEntity;
import com.yoyo.yyadsdk.bean.dao.PullEntity;
import com.yoyo.yyadsdk.bean.dao.PushEntity;
import com.yoyo.yyadsdk.bean.dao.RuleListEntity;
import com.yoyo.yyadsdk.bean.dao.ShortcutEntity;

import com.anye.greendao.gen.AdvScreenEntityDao;
import com.anye.greendao.gen.AppEntityDao;
import com.anye.greendao.gen.ConfigEntityDao;
import com.anye.greendao.gen.LocalAdvEntityDao;
import com.anye.greendao.gen.LocalAlarmEntityDao;
import com.anye.greendao.gen.LocalAppEntityDao;
import com.anye.greendao.gen.LocalPullEntityDao;
import com.anye.greendao.gen.LocalShortcutEntityDao;
import com.anye.greendao.gen.LocalTimingEntityDao;
import com.anye.greendao.gen.MonitorTimeEntityDao;
import com.anye.greendao.gen.PullBaseEntityDao;
import com.anye.greendao.gen.PullEntityDao;
import com.anye.greendao.gen.PushEntityDao;
import com.anye.greendao.gen.RuleListEntityDao;
import com.anye.greendao.gen.ShortcutEntityDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig advScreenEntityDaoConfig;
    private final DaoConfig appEntityDaoConfig;
    private final DaoConfig configEntityDaoConfig;
    private final DaoConfig localAdvEntityDaoConfig;
    private final DaoConfig localAlarmEntityDaoConfig;
    private final DaoConfig localAppEntityDaoConfig;
    private final DaoConfig localPullEntityDaoConfig;
    private final DaoConfig localShortcutEntityDaoConfig;
    private final DaoConfig localTimingEntityDaoConfig;
    private final DaoConfig monitorTimeEntityDaoConfig;
    private final DaoConfig pullBaseEntityDaoConfig;
    private final DaoConfig pullEntityDaoConfig;
    private final DaoConfig pushEntityDaoConfig;
    private final DaoConfig ruleListEntityDaoConfig;
    private final DaoConfig shortcutEntityDaoConfig;

    private final AdvScreenEntityDao advScreenEntityDao;
    private final AppEntityDao appEntityDao;
    private final ConfigEntityDao configEntityDao;
    private final LocalAdvEntityDao localAdvEntityDao;
    private final LocalAlarmEntityDao localAlarmEntityDao;
    private final LocalAppEntityDao localAppEntityDao;
    private final LocalPullEntityDao localPullEntityDao;
    private final LocalShortcutEntityDao localShortcutEntityDao;
    private final LocalTimingEntityDao localTimingEntityDao;
    private final MonitorTimeEntityDao monitorTimeEntityDao;
    private final PullBaseEntityDao pullBaseEntityDao;
    private final PullEntityDao pullEntityDao;
    private final PushEntityDao pushEntityDao;
    private final RuleListEntityDao ruleListEntityDao;
    private final ShortcutEntityDao shortcutEntityDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        advScreenEntityDaoConfig = daoConfigMap.get(AdvScreenEntityDao.class).clone();
        advScreenEntityDaoConfig.initIdentityScope(type);

        appEntityDaoConfig = daoConfigMap.get(AppEntityDao.class).clone();
        appEntityDaoConfig.initIdentityScope(type);

        configEntityDaoConfig = daoConfigMap.get(ConfigEntityDao.class).clone();
        configEntityDaoConfig.initIdentityScope(type);

        localAdvEntityDaoConfig = daoConfigMap.get(LocalAdvEntityDao.class).clone();
        localAdvEntityDaoConfig.initIdentityScope(type);

        localAlarmEntityDaoConfig = daoConfigMap.get(LocalAlarmEntityDao.class).clone();
        localAlarmEntityDaoConfig.initIdentityScope(type);

        localAppEntityDaoConfig = daoConfigMap.get(LocalAppEntityDao.class).clone();
        localAppEntityDaoConfig.initIdentityScope(type);

        localPullEntityDaoConfig = daoConfigMap.get(LocalPullEntityDao.class).clone();
        localPullEntityDaoConfig.initIdentityScope(type);

        localShortcutEntityDaoConfig = daoConfigMap.get(LocalShortcutEntityDao.class).clone();
        localShortcutEntityDaoConfig.initIdentityScope(type);

        localTimingEntityDaoConfig = daoConfigMap.get(LocalTimingEntityDao.class).clone();
        localTimingEntityDaoConfig.initIdentityScope(type);

        monitorTimeEntityDaoConfig = daoConfigMap.get(MonitorTimeEntityDao.class).clone();
        monitorTimeEntityDaoConfig.initIdentityScope(type);

        pullBaseEntityDaoConfig = daoConfigMap.get(PullBaseEntityDao.class).clone();
        pullBaseEntityDaoConfig.initIdentityScope(type);

        pullEntityDaoConfig = daoConfigMap.get(PullEntityDao.class).clone();
        pullEntityDaoConfig.initIdentityScope(type);

        pushEntityDaoConfig = daoConfigMap.get(PushEntityDao.class).clone();
        pushEntityDaoConfig.initIdentityScope(type);

        ruleListEntityDaoConfig = daoConfigMap.get(RuleListEntityDao.class).clone();
        ruleListEntityDaoConfig.initIdentityScope(type);

        shortcutEntityDaoConfig = daoConfigMap.get(ShortcutEntityDao.class).clone();
        shortcutEntityDaoConfig.initIdentityScope(type);

        advScreenEntityDao = new AdvScreenEntityDao(advScreenEntityDaoConfig, this);
        appEntityDao = new AppEntityDao(appEntityDaoConfig, this);
        configEntityDao = new ConfigEntityDao(configEntityDaoConfig, this);
        localAdvEntityDao = new LocalAdvEntityDao(localAdvEntityDaoConfig, this);
        localAlarmEntityDao = new LocalAlarmEntityDao(localAlarmEntityDaoConfig, this);
        localAppEntityDao = new LocalAppEntityDao(localAppEntityDaoConfig, this);
        localPullEntityDao = new LocalPullEntityDao(localPullEntityDaoConfig, this);
        localShortcutEntityDao = new LocalShortcutEntityDao(localShortcutEntityDaoConfig, this);
        localTimingEntityDao = new LocalTimingEntityDao(localTimingEntityDaoConfig, this);
        monitorTimeEntityDao = new MonitorTimeEntityDao(monitorTimeEntityDaoConfig, this);
        pullBaseEntityDao = new PullBaseEntityDao(pullBaseEntityDaoConfig, this);
        pullEntityDao = new PullEntityDao(pullEntityDaoConfig, this);
        pushEntityDao = new PushEntityDao(pushEntityDaoConfig, this);
        ruleListEntityDao = new RuleListEntityDao(ruleListEntityDaoConfig, this);
        shortcutEntityDao = new ShortcutEntityDao(shortcutEntityDaoConfig, this);

        registerDao(AdvScreenEntity.class, advScreenEntityDao);
        registerDao(AppEntity.class, appEntityDao);
        registerDao(ConfigEntity.class, configEntityDao);
        registerDao(LocalAdvEntity.class, localAdvEntityDao);
        registerDao(LocalAlarmEntity.class, localAlarmEntityDao);
        registerDao(LocalAppEntity.class, localAppEntityDao);
        registerDao(LocalPullEntity.class, localPullEntityDao);
        registerDao(LocalShortcutEntity.class, localShortcutEntityDao);
        registerDao(LocalTimingEntity.class, localTimingEntityDao);
        registerDao(MonitorTimeEntity.class, monitorTimeEntityDao);
        registerDao(PullBaseEntity.class, pullBaseEntityDao);
        registerDao(PullEntity.class, pullEntityDao);
        registerDao(PushEntity.class, pushEntityDao);
        registerDao(RuleListEntity.class, ruleListEntityDao);
        registerDao(ShortcutEntity.class, shortcutEntityDao);
    }
    
    public void clear() {
        advScreenEntityDaoConfig.clearIdentityScope();
        appEntityDaoConfig.clearIdentityScope();
        configEntityDaoConfig.clearIdentityScope();
        localAdvEntityDaoConfig.clearIdentityScope();
        localAlarmEntityDaoConfig.clearIdentityScope();
        localAppEntityDaoConfig.clearIdentityScope();
        localPullEntityDaoConfig.clearIdentityScope();
        localShortcutEntityDaoConfig.clearIdentityScope();
        localTimingEntityDaoConfig.clearIdentityScope();
        monitorTimeEntityDaoConfig.clearIdentityScope();
        pullBaseEntityDaoConfig.clearIdentityScope();
        pullEntityDaoConfig.clearIdentityScope();
        pushEntityDaoConfig.clearIdentityScope();
        ruleListEntityDaoConfig.clearIdentityScope();
        shortcutEntityDaoConfig.clearIdentityScope();
    }

    public AdvScreenEntityDao getAdvScreenEntityDao() {
        return advScreenEntityDao;
    }

    public AppEntityDao getAppEntityDao() {
        return appEntityDao;
    }

    public ConfigEntityDao getConfigEntityDao() {
        return configEntityDao;
    }

    public LocalAdvEntityDao getLocalAdvEntityDao() {
        return localAdvEntityDao;
    }

    public LocalAlarmEntityDao getLocalAlarmEntityDao() {
        return localAlarmEntityDao;
    }

    public LocalAppEntityDao getLocalAppEntityDao() {
        return localAppEntityDao;
    }

    public LocalPullEntityDao getLocalPullEntityDao() {
        return localPullEntityDao;
    }

    public LocalShortcutEntityDao getLocalShortcutEntityDao() {
        return localShortcutEntityDao;
    }

    public LocalTimingEntityDao getLocalTimingEntityDao() {
        return localTimingEntityDao;
    }

    public MonitorTimeEntityDao getMonitorTimeEntityDao() {
        return monitorTimeEntityDao;
    }

    public PullBaseEntityDao getPullBaseEntityDao() {
        return pullBaseEntityDao;
    }

    public PullEntityDao getPullEntityDao() {
        return pullEntityDao;
    }

    public PushEntityDao getPushEntityDao() {
        return pushEntityDao;
    }

    public RuleListEntityDao getRuleListEntityDao() {
        return ruleListEntityDao;
    }

    public ShortcutEntityDao getShortcutEntityDao() {
        return shortcutEntityDao;
    }

}
